home *** CD-ROM | disk | FTP | other *** search
/ The PC-SIG Library 9 / The PC-SIG Library on CD ROM - Ninth Edition.iso / 501_600 / DISK0579 / DISK0579.ZIP / CHAP07.TXT < prev    next >
Text File  |  1989-12-01  |  6KB  |  178 lines

  1.  
  2.  
  3.  
  4.                                                     Chapter 7
  5.                                   STRINGS & STRING PROCEDURES
  6.  
  7.  
  8. PASCAL STRINGS
  9. ____________________________________________________________
  10.  
  11. According to the Pascal definition, a        ================
  12. string is simply an array of 2 of more         STRARRAY.PAS
  13. elements of type char, and is contained in   ================
  14. an array defined in a var declaration as a
  15. fixed length.  Look at the example program
  16. STRARRAY.PAS.  Notice that the strings are defined in the type
  17. declaration even though they could have been defined in the
  18. var part of the declaration.  This is to begin getting you
  19. used to seeing the type declaration.  The strings defined here
  20. are nothing more than arrays with char type variables.
  21.  
  22.  
  23. A STRING IS AN ARRAY OF CHAR
  24. ____________________________________________________________
  25.  
  26. The interesting part of this file is the executable program. 
  27. Notice that when the variable First_Name is assigned a value,
  28. the value assigned to it must contain exactly 10 characters
  29. or the compiler will generate an error.  Try editing out a
  30. blank and you will get an invalid type error.  Pascal is neat
  31. in allowing you to write out the values in the string array
  32. without specifically writing each character in a loop as can
  33. be seen in the Writeln statement.  To combine the data, called
  34. concatenation, requires the use of the rather extensive
  35. looping and subscripting seen in the last part of the program. 
  36. It would be even messier if we were to consider variable
  37. length fields which is nearly always the case in a real
  38. program.
  39.  
  40. Two things should be observed in this program.  First, notice
  41. the fact that the string operations are truly array operations
  42. and will follow all of the characteristics discussed in the
  43. last chapter.  Secondly, it is very obvious that Pascal is
  44. rather weak when it comes to its handling of text type data. 
  45. Pascal will handle text data, even though it may be difficult
  46. to do so using the standard description of Pascal as
  47. illustrated in this program.  We will see next that TURBO
  48. Pascal really shines here.  Compile and run STRARRAY.PAS and
  49. observe the output.
  50.  
  51.  
  52. THE TURBO PASCAL STRING TYPE
  53. ____________________________________________________________
  54.  
  55. Look at the example program STRINGS.PAS.  You will see a much
  56. more concise program that actually does more.  TURBO Pascal
  57. has, as an extension to standard Pascal, the string type of
  58.  
  59.                                                      Page 7-1
  60.  
  61.                                 Strings and String Procedures
  62.  
  63. variable.  It is used as shown, and the     =================
  64. number in the square brackets in the var       STRINGS.PAS
  65. declaration is the maximum length of the    =================
  66. string.  In actual use in the program, the
  67. variable can be used as any length from
  68. zero characters up to the maximum given in the declaration. 
  69. The variable First_Name, for example, actually has 11
  70. locations of storage for its data.  The current length is
  71. stored in First_Name[0] and the data is stored in
  72. First_Name[1] through First_Name[10].  All data are stored as
  73. byte variables, including the size, so the length is therefore
  74. limited to a maximum of 255 characters.
  75.  
  76.  
  77.  
  78. STRINGS HAVE VARIABLE LENGTHS
  79. ____________________________________________________________
  80.  
  81. Now look at the program itself.  Even though the variable
  82. First_Name is defined as 10 characters long, it is perfectly
  83. legal to assign it a 4 character constant, with First_Name[0]
  84. automatically set to 4 by the system and the last six
  85. characters undefined and unneeded.  When the program is run
  86. the three variables are printed out all squeezed together
  87. indicating that the variables are indeed shorter than their
  88. full size as defined in the var declaration.  
  89.  
  90. Using the string type is even easier when you desire to
  91. combine several fields into one as can be seen in the
  92. assignment to Full_Name.  Notice that there are even two
  93. blanks, in the form of constant fields, inserted between the
  94. component parts of the full name.  When it is written out, the
  95. full name is formatted neatly and is easy to read.  Compile
  96. and run STRINGS.PAS and observe the output.
  97.  
  98.  
  99.  
  100. WHAT'S IN A STRING TYPE VARIABLE?
  101. ____________________________________________________________
  102.  
  103. The next example program named               ================
  104. WHATSTRG.PAS, is intended to show you          WHATSTRG.PAS
  105. exactly what is in a string variable.        ================
  106. This program is identical to the last
  107. program except for some added statements
  108. at the end.  Notice the assignment to Total.  The function
  109. Length is available in TURBO Pascal to return the current
  110. length of any string type variable.  It returns a byte type
  111. variable with the value contained in the [0] position of the
  112. variable.  We print out the number of characters in the string
  113. at this point, and then print out each character on a line by
  114. itself to illustrate that the TURBO Pascal string type
  115. variable is simply an array variable.
  116.  
  117.  
  118.                                                      Page 7-2
  119.  
  120.                                 Strings and String Procedures
  121.  
  122. The TURBO Pascal reference manual has a full description of
  123. several more procedures and functions for use with strings
  124. which are available in TURBO Pascal only.  Refer to your TURBO
  125. Pascal version 3.0 reference manual in chapter 9, beginning
  126. on page 67, or if you are using TURBO Pascal version 4.0, you
  127. will find the string functions throughout chapter 27.  The
  128. TURBO Pascal Reference Guide for version 5.X has a list of
  129. string procedures and functions on page 120.  The use of these
  130. should be clear after you grasp the material covered here.
  131.  
  132.  
  133. PROGRAMMING EXERCISE
  134. ____________________________________________________________
  135.  
  136. 1.   Write a program in which you store your first, middle,
  137.      and last names as variables, then display them one to a
  138.      line.  Concatenate the names with blanks between them and
  139.      display your full name as a single variable.
  140.  
  141.  
  142.  
  143.  
  144.  
  145.  
  146.  
  147.  
  148.  
  149.  
  150.  
  151.  
  152.  
  153.  
  154.  
  155.  
  156.  
  157.  
  158.  
  159.  
  160.  
  161.  
  162.  
  163.  
  164.  
  165.  
  166.  
  167.  
  168.  
  169.  
  170.  
  171.  
  172.  
  173.  
  174.  
  175.  
  176.  
  177.                                                      Page 7-3
  178.